<?php
namespace backend\behaviors ;
use MongoDB\Driver\Exception\AuthenticationException;
use yii\base\Behavior;
use yii\web\Controller;
use Yii ;
use yii\web\Request;
use yii\web\UnauthorizedHttpException;

class AuthBehavior extends Behavior
{
    /**
     * @var Request
     */
    private $request ;
    public function init()
    {
        $this->request = Yii::$app->request ;
    }

    public function events()
    {
        return [
            Controller::EVENT_BEFORE_ACTION => 'beforAction'
        ];
    }

    public function beforAction($event){

        $user = Yii::$app->getUser() ;

        if($user->isGuest){
            if($this->request->isAjax){
                throw new UnauthorizedHttpException() ;
            }else{
                header('Location:'.Yii::getAlias('@web/site/login'));
                exit;
            }
        }
    }

    protected  function checkUser(){
//        $user = $request->user();
//
//        if(in_array($user->name,config('rbac.allowUsers'))){
//            return true ;
//        }
//
//        $path = $request->getPathInfo();
//        $path = substr($path,1) ;
//        $prefixPos = strpos($path , '/') ;
//
//        if ($prefixPos !== false){
//            $path = substr($path , $prefixPos + 1) ;
//
//            if(empty($path) || $this->mathRules($path,$request->method(),config('rbac.allowRules'))){
//                return ;
//            }
//
//            if(!$user->CheckRule($path,$request->method())){
//                abort(403);
//            }
//        }
    }

}